1. Field of the Invention
The present invention generally relates to the processing of binary words by calculation functions. The present invention more specifically relates to the execution, by a state machine in wired logic of an integrated circuit, of a calculation representing a function capable of being used by several applications within this same circuit.
2. Discussion of the Related Art
An example of application of the present invention relates to the implementation, within the same circuit, of several processings all using a same operating function. For example, it may be a public key signature processing, a data integrity control or a random generator for cryptography. In all the above cases, a so-called “Hash” discriminating function is generally used, for example, functions known as SHA, MD5, etc.
Most of these discriminating functions are based on an iterative processing of a message divided into blocks taking into account the result of the previous iteration. They thus generally use a single work register which is updated at each iteration and forms, at the function end, an output register providing the desired result (calculated signature, integrity control authentication code, or random bit train) to be exploited by the rest of the circuit.
It would be desirable, for miniaturization, to be able to share a same logic operator for several processings exploiting a same function.
However, this poses several problems due to the very nature of the functions to which the present invention applies.
A first problem is linked to the existence of a work register storing the results of the different iterations. Indeed, this means in practice that the result of the functions is only obtained at the end of the multiple iterations.
A solution would consist of having interrupts generated by other applications wait until the iteration calculation is over. This is however incompatible with a desire of real time execution required by some applications needing the operator. For example, in the context of an integrity control requiring the discrimination operator for an authentication message calculation, it cannot be awaited until the operator is freed by another application.
It could also have been devised to store an intermediary state of an interruptible application to leave the work register and the operator available for another priority-holding application. However, a storing operation followed by a restoring of the states of the work register associated with the operator adversely affects the system performances and weakens it as concerns security against possible piracies of the handled quantities.
In practice, the only acceptable conventional solution when several applications (signature, integrity, random number generation) must use a Hash-type discrimination function, is to provide as many circuits (operator+register) as there are applications.